package com.tedu.review.day02;

/**
 * Java类---继承---方法：具备多态性
 * 实现父子方法互相调用  注意：重写跟重载
 * 实现多态：向上造型  父类对象  引用=new 子类对象（）；【创建对象：常见】
 */
class A1{
    public void tell1(){
        System.out.println("A---你好 我是tell1");

    }
    public void tell2(){
        System.out.println("A---你好 我是tell2");
    }
}
class B1 extends A1{
    public  void tell2(){
        System.out.println("B---你好 我是tell2");
    }
    public void tell3(){
        System.out.println("B---你好  我是tell3");
    }
}

public class 多态造型问题 {
    public static void main(String[] args) {
        //继承---方法：方法互通   考虑：多态【造型上下】
        //A1 a1=new B1（）； 抽象类与接口使用
       // B1 b1=new B1();
        //A1 a1=b1;
     //   a1.tell1();
       // a1.tell2();   //向上造型：调用父类方法 没有实现方法互通
        //       如果有重写  子类覆盖父类的方法
        //向下造型：1.父类 引用=new 子类（）； 向上造型一次
        A1 a1=new B1();  //1.父类  引用=new 子类（）；向上造型一次
        B1 b1=(B1) a1;  //2.子类 引用=（子类对象）向上造型引用
        //实现：方法互通
        b1.tell1();  //父类方法
        b1.tell2();  //子类方法   重写
        b1.tell3();  //子类方法
    }
}
